package com.feicheng.persistence.service;

import com.feicheng.common.result.ResultInfo;
import com.feicheng.persistence.entity.Role;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wangzhaoyu
 * @since 2023-08-15
 */
public interface IRoleService extends IService<Role> {
	/**
     * 分页查询角色信息
     * @param roleName 检索条件：角色名
     * @param statu 检索条件：角色状态
     * @param currentPage 当前页
     * @param pageSize 每页条数
     * @return
     */
    public ResultInfo selectRoles(
            String roleName,
            Boolean statu,
            Integer currentPage,
            Integer pageSize
    );
    
    /**
     * 取得所有角色
     * @param statu 检索条件：角色状态
     * @return
     */
    public ResultInfo allRoles(Boolean statu);
    
    /**
     * 根据角色ID取得角色信息
     * @param roleCode 检索主键：角色Code
     * @return
     */
    public ResultInfo getRoleById(String roleCode);
    
    /**
     * 添加角色以及角色相关的权限
     * @param role 角色信息
     * @return
     */
    public ResultInfo addRole(Role role);

    /**
     * 更新角色以及角色相关的权限
     * @param role 角色信息
     * @return
     */
    public ResultInfo updateRole(Role role);

    /**
     * 删除角色信息
     * @param roleCode 删除主键：角色code
     * @return
     */
    public ResultInfo deleteRole(String roleCode);

}
